"""
1、导入模块 pymysql
2、建立连接对象 pymysql.connect()
3、创建游标对象
4、使用游标对象执行SQL语句
5、获取执行的结果
6、打印输出获取的内容
7、关闭游标对象
8、关闭连接对象

"""
import pymysql

# 1、导入模块 pymysql
# 2、建立连接对象 pymysql.connect()
# pymysql.connect()
# host 主机
# user 用户名
# password 密码
# database 指定数据库
conn = pymysql.connect(host='localhost', user='root', password='mysql', database='jing_dong')
# 3、创建游标对象
cur = conn.cursor()
input_name = input("请输入要查询的名称:\n")
# 4、使用游标对象执行SQL语句
# 被注入的过程的分析：
# input_name = ' or 1 or '
# "select * from goods where name = '%s' order by id desc" % input_name
# "select * from goods where name = '' or 1 or '' order by id desc"
# 防止注入：
# 1）构建参数列表：params = [input_name]
# 2）把列表传递给 execute(sql, params)
params = [input_name]

sql ="select * from goods where name = %s order by id desc"
# cur.execute(sql语句)，返回值是影响的行数，如果是查询语句，此处返回值总记录数
result = cur.execute(sql, params)
print("查询到:%s条数据" % result)
# 5、获取执行的结果
# cur.fetchone() 从查询的结果中取出一条数据
# result_list = cur.fetchone()
#              ((),(),())
result_list = cur.fetchall()
# 6、打印输出获取的内容
# print(result_list)
for line in result_list:
    # line 一行 是一个元组
    print(line)
# 7、关闭游标对象
cur.close()
# 8、关闭连接对象
conn.close()